<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Horario_frm( $this );

	class Horario_frm extends Frm
	{
	function Horario_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncPersona']			= new InputLookUp ( "Persona", "ncPersona" );
			$this->aFields['dIngreso']			= new InputDate( "Fecha Ingreso", "dIngreso" );
			$this->aFields['nTipo']				= new InputCheck( "Tipo", "nTipo" );
			$this->aFields['nHorario']			= new InputTime( "Horario", "nHorario" );
			$this->aFields['ncMotivo']			= new InputList ( "Motivo", "ncMotivo" );
			$this->aFields['nDeclarada']		= new InputTime( "Declarada", "nDeclarada" );
			$this->aFields['nEntrada']			= new InputTime( "Entrada", "nEntrada" );
			$this->aFields['ncMotivoEntrada']	= new InputList ( "MotivoEntrada", "ncMotivoEntrada" );
			$this->aFields['nEntradaDeclarada']	= new InputTime( "Declarada", "nEntradaDeclarada" );
			$this->aFields['nSalida']			= new InputTime( "Salida", "nSalida" );
			$this->aFields['nSalidaDeclarada']	= new InputTime( "Declarada", "nSalidaDeclarada" );
			$this->aFields['ncMotivoSalida']	= new InputList ( "Motivo", "ncMotivoSalida" );
			$this->aFields['cObservaciones']	= new InputText( "Observaciones", "cObservaciones" );
		}
	function setValue( $ncPersona , $dIngreso )
		{
			$cSql = "SELECT dIngreso, nEntrada, ncMotivoEntrada, nEntradaDeclarada, nSalida, ncMotivoSalida, nSalidaDeclarada, cObservaciones
								FROM atPersonalHorario as PHo
								WHERE PHo.ncPersona = $ncPersona
									AND PHo.dIngreso = '$dIngreso'";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
			return $aRow;
		}
	function setLevel( $nLevel)
		{
			switch ( $nLevel )
			{
				case 2: // Alta Simple
					$this->aFields['dIngreso']->setDefault( date("Y-m-d") );
					$this->aInput = array( 'dIngreso', 'nTipo', 'ncPersona', 'nHorario', 'ncMotivo', 'nDeclarada', 'cObservaciones'  );
					break;
				case 3: // Alta Tipo Planilla
					$this->aInput = array( 'dIngreso', 'nTipo', 'ncPersona', 'nHorario', 'ncMotivo', 'nDeclarada', 'cObservaciones'  );
					break;
				case 4: // Modificacion
					$this->aInput = array( 'dIngreso', 'ncPersona', 'nEntrada', 'nEntradaDeclarada', 'ncMotivoEntrada', 'nSalida', 'nSalidaDeclarada', 'ncMotivoSalida', 'cObservaciones'  );
					break;
			}
		}
	function initializeForm()
		{
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && $this->aFields['ncPersona']->getValue() && $this->aFields['dIngreso']->getValue() )
				{
					$aRow = $this->setValue( $this->aFields['ncPersona']->getValue() , $this->aFields['dIngreso']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel ( "Horario ");
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'ncPersona':
					$oField->setMandatory($this->isMandatory() );
					$oField->setForm( $this );
					initializePersonal( $oField );
				break;
				case 'dIngreso':
					if ( $this->getOptionsLevel() == 3 )
					{
						$oField->setHidden();
					} else
					{
						$oField->setMandatory($this->isMandatory() );
					}
				break;
				case 'nHorario':
					$oField->setMandatory($this->isMandatory() );
				break;
				case 'nTipo':
					if ( $this->getOptionsLevel() == 3 )
					{
						$oField->setHidden();
					} else
					{
						$oField->addOption( 1, 'Entrada' );
						$oField->addOption( 2, 'Salida' );
						$oField->setMandatory($this->isMandatory() );
					}
				break;
				case 'ncMotivo':
					$cSql  = "SELECT ncMotivoHorario, cdMotivoHorario FROM acMotivoHorario";
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
				break;
				case 'ncMotivoEntrada':
					$cSql  = "SELECT ncMotivoHorario, cdMotivoHorario FROM acMotivoHorario";
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
				break;
				case 'ncMotivoSalida':
					$cSql  = "SELECT ncMotivoHorario, cdMotivoHorario FROM acMotivoHorario";
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
				break;
				case 'cObservaciones':
					$oField->setLength( 250 );
				break;
			}
		}
	}
?>